T-SQL এর WHILE লুপ একটি কন্ট্রোল ফ্লো স্টেটমেন্ট যা নির্দিষ্ট শর্ত পূরণ হওয়া পর্যন্ত একটি কোড ব্লক একাধিক বার এক্সিকিউট করতে ব্যবহৃত হয়। এটি একটি ইটারেটিভ লুপ, যেখানে লুপের মধ্যে থাকা কোড একাধিক বার রান হয় যতক্ষণ না লুপের শর্ত মিথ্যা হয়ে যায়।
WHILE লুপের মৌলিক সিনট্যাক্স:
WHILE (শর্ত)
BEGIN
-- কোড যা বার বার এক্সিকিউট হবে
END
- শর্ত: এটি একটি লজিক্যাল এক্সপ্রেশন যা সত্য (True) হলে লুপটি চলতে থাকবে। যদি শর্ত মিথ্যা (False) হয়, তাহলে লুপটি শেষ হবে।
- BEGIN...END: একাধিক স্টেটমেন্ট একসাথে রান করতে ব্যবহৃত হয়। যখন একাধিক SQL স্টেটমেন্ট থাকে, তখন এগুলি একটি
BEGIN...ENDব্লকে রাখতে হবে।
উদাহরণ ১: সাধারণ WHILE লুপ
নিম্নলিখিত উদাহরণটি ১ থেকে ৫ পর্যন্ত সংখ্যাগুলি প্রিন্ট করবে।
DECLARE @Counter INT = 1;
WHILE @Counter <= 5
BEGIN
PRINT @Counter;
SET @Counter = @Counter + 1;
END
ব্যাখ্যা:
- এখানে
@Counterভেরিয়েবলটি প্রথমে ১ দিয়ে আরম্ভ করা হয়। - শর্ত
@Counter <= 5সত্য থাকলে, WHILE লুপটি চলে এবং@Counterএর মান প্রিন্ট করে। তারপর@Counterএর মান ১ বাড়িয়ে দেওয়া হয়। - লুপটি ৫ বার চলে এবং ১ থেকে ৫ পর্যন্ত মান প্রিন্ট করবে।
উদাহরণ ২: WHILE লুপে শর্ত পরিবর্তন
এখানে একেকটি ভ্যালুকে ২ দিয়ে গুণ করা হচ্ছে যতক্ষণ না ফলাফল ১০০ এর বেশি হয়ে যায়।
DECLARE @Number INT = 2;
WHILE @Number <= 100
BEGIN
PRINT @Number;
SET @Number = @Number * 2;
END
ব্যাখ্যা:
- শুরুতে
@Numberএর মান ২। - প্রতি ইটারেশনে
@Numberএর মান ২ দ্বারা গুণিত হচ্ছে। - যখন
@Number১০০ এর বেশি হয়ে যায়, তখন লুপ বন্ধ হয়ে যাবে।
উদাহরণ ৩: BREAK এবং CONTINUE স্টেটমেন্ট
BREAK স্টেটমেন্ট ব্যবহার করে আপনি লুপটি বন্ধ করতে পারেন, এবং CONTINUE স্টেটমেন্ট ব্যবহার করে লুপের পরবর্তী ইটারেশনে চলে যেতে পারেন।
DECLARE @Counter INT = 1;
WHILE @Counter <= 10
BEGIN
IF @Counter = 5
BEGIN
BREAK; -- যখন @Counter 5 হবে, লুপ বন্ধ হবে
END
PRINT @Counter;
SET @Counter = @Counter + 1;
END
ব্যাখ্যা:
- এখানে
@Counterযদি ৫ হয়, তখন BREAK স্টেটমেন্ট কার্যকর হবে এবং লুপটি থেমে যাবে। - এই কুয়েরি ১ থেকে ৪ পর্যন্ত সংখ্যাগুলি প্রিন্ট করবে এবং তারপর বন্ধ হবে।
উদাহরণ ৪: CONTINUE স্টেটমেন্ট
DECLARE @Counter INT = 0;
WHILE @Counter < 5
BEGIN
SET @Counter = @Counter + 1;
IF @Counter = 3
BEGIN
CONTINUE; -- যখন @Counter 3 হবে, পরবর্তী স্টেটমেন্ট স্কিপ হবে
END
PRINT @Counter;
END
ব্যাখ্যা:
- এই কুয়েরি ১, ২, ৪, ৫ সংখ্যাগুলি প্রিন্ট করবে। কারণ যখন
@Counter৩ হয়, তখন CONTINUE স্টেটমেন্ট পরবর্তী ইটারেশনে চলে যাবে এবং ৩ স্কিপ হবে।
সারাংশ
- WHILE লুপ ব্যবহার করে নির্দিষ্ট শর্ত পূর্ণ না হওয়া পর্যন্ত কোডের ব্লক একাধিক বার এক্সিকিউট করা যায়।
- শর্ত সত্য হলে লুপ চলে এবং শর্ত মিথ্যা হলে লুপ বন্ধ হয়ে যায়।
- BREAK এবং CONTINUE স্টেটমেন্ট ব্যবহার করে লুপের মধ্যে প্রবাহ নিয়ন্ত্রণ করা যায়। BREAK লুপ বন্ধ করে এবং CONTINUE পরবর্তী ইটারেশনে চলে যায়।
T-SQL এ WHILE লুপ একটি শক্তিশালী কন্ট্রোল ফ্লো স্টেটমেন্ট যা ডেটাবেস অপারেশন ও লজিকাল কাজগুলো পুনরাবৃত্তি (iteration) করতে সহায়তা করে।